package edu.upc.dao.registro.impl;

import java.sql.Connection;
import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.SQLException;

import javax.sql.DataSource;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import edu.upc.dao.registro.RegistroPublicidadDao;
import edu.upc.model.Publicidad;

@Component
public class RegistroPublicidadDaoImpl implements RegistroPublicidadDao {

	@Autowired
	DataSource dataSource;

	public boolean registrarModificarPublicidad(Publicidad publicidad) {
		
		String sql = "";
		if (publicidad.getId() > 0){
			sql = "UPDATE  tb_publicidad SET desc_corta_publi = ?, cuerpo_publi = ?, enlace_publi = ?, fechaInicial_publi = ?, fecha_Fin = ?, estado_publi = ? WHERE id_publi = ?";
		}else{
			sql = "insert into tb_publicidad (desc_corta_publi,cuerpo_publi,enlace_publi,fechaInicial_publi,fecha_Fin,estado_publi) values (?, ?, ?, ?, ?, ?)";
		}		

		Connection conn = null;
		PreparedStatement ps = null;
		boolean flagRpta=false;
		try {
			conn = dataSource.getConnection();
			ps = conn.prepareStatement(sql);
			ps.setString(1, publicidad.getDescripcionCorta());
			ps.setString(2, publicidad.getCuerpoPublicidad());
			ps.setString(3, publicidad.getEnlacePublicidad());
			ps.setDate(4, new Date(publicidad.getFechaInicio().getTime()));
			ps.setDate(5, new Date(publicidad.getFechaFin().getTime()));
			ps.setString(6, publicidad.getEstado());
			if (publicidad.getId() > 0){ ps.setInt(7, publicidad.getId());}
			ps.execute();
			flagRpta=true;
		} catch (SQLException e) {
			throw new RuntimeException("SQL exception occured inserting!", e);
		} finally {
			if (ps != null) {
				try {
					ps.close();
				} catch (SQLException ex) {
				}
			}
			if (conn != null) {
				try {
					conn.close();
				} catch (SQLException ex) {
				}
			}
		}
		
		return flagRpta;
	}
	
}
